package com.sxpcwlkj.system.service;

import com.sxpcwlkj.framework.entity.page.PageQuery;
import com.sxpcwlkj.framework.entity.page.TableDataInfo;
import com.sxpcwlkj.system.entity.AdminMenuTree;
import com.sxpcwlkj.system.entity.SysUser;
import com.sxpcwlkj.system.entity.bo.SysUserBo;
import com.sxpcwlkj.system.entity.vo.SysUserVo;

import java.util.List;

public interface SysUserService {

    TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery);

    /**
     * 根据用户Id
     */
    SysUserVo selectVoById(String userId);

    /**
     * 编辑用户
     *
     * @param bo 对象
     * @return true：成功 false ：失败
     */
    Boolean updateById(SysUserBo bo);

    /**
     * 根据用户名查询用户
     */
    SysUser selectByUserName(String tenantId, String userName);

    /**
     * 用户更新秘钥对
     */
    int updateRsa(String tenantId, String userId);

    /**
     * 获取用户的角色，权限，基本信息
     */
    SysUserVo getUserRoleAnfFunctionInfo(String userId);

    /**
     * 获取当前登录对象的菜单
     */
    List<AdminMenuTree> getAdminMenuTree(String userId);


    /**
     * 新增用户
     * @param bo 对象
     * @return vo
     */
    Boolean insert(SysUserBo bo);
    /**
     * 删除用户
     * @param
     * @return vo
     */
    Boolean deleteById(String id);

    /**
     * 更新头像
     * @param headerImg
     * @return
     */
    Boolean updateHeaderImgById(String headerImg);
}
